#include "BulletCollision/CollisionDispatch/btUnionFind.h"
#ifdef __cplusplus
extern "C" {
#endif
btUnionFind* bullet_NewbtUnionFind(){
	btUnionFind* wrap_out = new btUnionFind();
	return wrap_out;
}

void bullet_btUnionFind_allocate(btUnionFind* c_this,int N){
	int c_arg_N=N;
	c_this->allocate(c_arg_N);
}

int bullet_btUnionFind_find(btUnionFind* c_this,int p,int q){
	int c_arg_p=p;
	int c_arg_q=q;
	int c_out = c_this->find(c_arg_p,c_arg_q);
	int wrap_out = (c_out);
	return wrap_out;
}

int bullet_btUnionFind_find1(btUnionFind* c_this,int x){
	int c_arg_x=x;
	int c_out = c_this->find(c_arg_x);
	int wrap_out = (c_out);
	return wrap_out;
}

void bullet_btUnionFind_Free(btUnionFind* c_this){
	c_this->Free();
}

int bullet_btUnionFind_getNumElements(btUnionFind* c_this){
	int c_out = c_this->getNumElements();
	int wrap_out = (c_out);
	return wrap_out;
}

bool bullet_btUnionFind_isRoot(btUnionFind* c_this,int x){
	int c_arg_x=x;
	bool c_out = c_this->isRoot(c_arg_x);
	bool wrap_out = (c_out);
	return wrap_out;
}

void bullet_btUnionFind_reset(btUnionFind* c_this,int N){
	int c_arg_N=N;
	c_this->reset(c_arg_N);
}

void bullet_btUnionFind_sortIslands(btUnionFind* c_this){
	c_this->sortIslands();
}

void bullet_btUnionFind_unite(btUnionFind* c_this,int p,int q){
	int c_arg_p=p;
	int c_arg_q=q;
	c_this->unite(c_arg_p,c_arg_q);
}

btElement* bullet_NewbtElement(){
	btElement* wrap_out = new btElement();
	return wrap_out;
}

int bullet_btElement_GetFieldOfM_id(btElement* c_this){
	return (int)(c_this->m_id);
}

int bullet_btElement_GetFieldOfM_sz(btElement* c_this){
	return (int)(c_this->m_sz);
}

#ifdef __cplusplus
}
#endif
